package main

//func login(userId int, userPwd string) (err error) {
//	//下一步开始定协议。。
//	//fmt.Printf("userId=%d userPwd=%s\n", userId, userPwd)
//	//return nil
//
//	//1.链接到服务器，拨号.用就关
//	conn, err := net.Dial("tcp", "localhost:8889")
//	defer conn.Close()
//
//	if err != nil {
//		fmt.Println("net.Dial err = ", err)
//	}
//
//	//2.准备通过conn发送消息给服务器
//	var mes message.Message
//	mes.Type = message.LoginMesType
//
//	//3.创建一个LoginMes 结构体
//	var loginMes message.LoginMes
//	loginMes.UserId = userId
//	loginMes.UserPwd = userPwd
//	//4.将loginMes序列化
//	data, err := json.Marshal(loginMes)
//	if err != nil {
//		fmt.Println("json.Marshal err = ", err)
//		return
//	}
//	//5.把data赋给mes.Data字段
//	mes.Data = string(data)
//	//6.将mes进行序列化
//	data, err = json.Marshal(mes)
//	if err != nil {
//		fmt.Println("json.Marshal err = ", err)
//		return
//	}
//	//7.到此时，data就是我们需要发送的消息
//	//7.1先发data的长度给服务器
//	//先获取到data的长度->转成一个表示长度的byte[]切片
//	var pkgLen uint32
//	pkgLen = uint32(len(data))
//	var buf [4]byte
//	binary.BigEndian.PutUint32(buf[0:4], pkgLen)
//	//发送长度
//	n, err := conn.Write(buf[0:4])
//	if err != nil || n != 4 {
//		fmt.Println("conn.Write(bytes) fail err = ", err)
//		return
//	}
//	//fmt.Printf("成功，客户端发送消息的长度 = %d,内容 = %s", len(data), string(data))
//
//	//发送消息本身
//	n, err = conn.Write(data)
//	if err != nil {
//		fmt.Println("conn.Write(data) fail err = ", err)
//		return
//	}
//	//休眠10s
//	//time.Sleep(time.Second * 10)
//	//fmt.Println("休眠10s")
//
//	//还需要处理服务器端返回的消息
//	mes, err = utils.readPkg(conn)
//	if err != nil {
//		fmt.Println("readPkg(conn) err = ", err)
//		return
//	}
//	//将mes的Data部分反序列化成loginResMes
//	var loginResMes message.LoginResMes
//
//	err = json.Unmarshal([]byte(mes.Data), &loginResMes)
//	if loginResMes.Code == 200 {
//		fmt.Println("登陆成功")
//	} else if loginResMes.Code == 500 {
//		fmt.Println(loginResMes.Error)
//	}
//	return
//}
